package rullekake.beans.util;

import java.util.Locale;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/**
 *
 * Hjelpeklasse for å håndtere språkvalg
 * Alle metoder er statiske
 *
 */
@SessionScoped
@ManagedBean(name="localeHelper")
public class LocaleHelper {
    private static final String BASENAME = "/Messages";
    private Locale locale;

    /**
     * Konstruktør som henter inn default locale.
     *
     */
    public LocaleHelper() {
        locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
    }

    /**
     * Returnerer locale fra context
     * @return Current Locale
     */
    public Locale getCurrent() {
        return locale;
    }

    /**
     * @return filnavn på språktilpasset bundle
     */
    public static String getBundleName() {
        return FacesContext.getCurrentInstance().getViewRoot().getLocale().getLanguage().equals("no")? BASENAME + "_no" : BASENAME + "_en";
    }

    /**
     * Setter norsk locale
     * @return null
     */
    public String setNorwegianLocale() {
        FacesContext context = FacesContext.getCurrentInstance();
        context.getViewRoot().setLocale(new Locale("no"));
        locale = context.getViewRoot().getLocale();
        return null;
    }

    /**
     * Setter engelsk locale
     * @return null
     */
    public String setEnglishLocale() {
        System.err.println("running setEnglishLocale");
         FacesContext context = FacesContext.getCurrentInstance();
         System.err.println("Språk: "+ context.getViewRoot().getLocale().getLanguage());
        context.getViewRoot().setLocale(new Locale("en"));
        locale = context.getViewRoot().getLocale();
        return null;
    }

    /**
     * Sjekker om engelsk er locale
     * @return sant hvis locale er engelsk
     */
    public boolean isEnglishSet() {
        return getCurrent().getLanguage().equals("en");
    }

    /**
     * Sjekker om norsk er locale
     * @return sant hvis locale er norsk
     */

    public boolean isNorwegianSet() {
        return getCurrent().getLanguage().equals("no");
    }
}
